home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / jcool01.zip / TEST_GS.C < prev    next >
C/C++ Source or Header  |  1992-08-20  |  8KB  |  230 lines

  1. //
  2. // Copyright (C) 1991 Texas Instruments Incorporated.
  3. //
  4. // Permission is granted to any individual or institution to use, copy, modify,
  5. // and distribute this software, provided that this complete copyright and
  6. // permission notice is maintained, intact, in all copies and supporting
  7. // documentation.
  8. //
  9. // Texas Instruments Incorporated provides this software "as is" without
  10. // express or implied warranty.
  11. //
  12.  
  13. #include <cool/Gen_String.h>
  14. #include <test.h>
  15.  
  16. void test0() {
  17.   CoolGen_String s1;
  18.   TEST ("CoolGen_String s1", 0, 0);
  19.   TEST ("strlen(s1) == 0", strlen (s1), 0);
  20.   s1 = "Hello";
  21.   TEST ("s1 = \"Hello\"", strlen (s1), 5);
  22.   TEST ("strlen(s1) == 5", strlen (s1), 5);
  23.   TEST ("strcmp(s1,\"Hello\")", strcmp(s1,"Hello"), 0);
  24.   CoolGen_String s2("World");
  25.   TEST ("CoolGen_String s2(\"World\")", 0, 0);
  26.   TEST ("strlen(s2) == 5", strlen (s2), 5);
  27.   TEST ("strcmp(s2,\"World\")", strcmp(s2,"World"), 0);
  28.   s2 = s2 + '!';
  29.   TEST ("s2 = s2 + '!'", strcmp(s2,"World!"), 0);
  30.   strcat (s1, " ");
  31.   TEST ("strcat(s1, \" \")", strlen (s1), 6);
  32.   s1 += s2;
  33.   TEST ("s1 += s2", strcmp (s1,"Hello World!"), 0);
  34.   TEST ("strcmp (s1,\"Hello World!\")", strcmp (s1,"Hello World!"), 0);
  35.   TEST ("s1 == \"Hello World!\"", s1 == "Hello World!", 1);
  36.   TEST ("is_equal(s2,\"WORLD\",SENSITIVE)", is_equal(s2,"WORLD",INSENSITIVE),
  37.     FALSE);
  38.   TEST ("is_equal(s2,\"WORLD!\",INSENSITIVE)",
  39.     is_equal(s2,"WORLD!",INSENSITIVE), TRUE);
  40.   TEST ("strlen (s1) == 12", strlen (s1), strlen ("Hello World!"));
  41.   TEST ("s1[6] == 'W'", (s1[6] == 'W'), 1);
  42.   TEST ("s1 != s2", is_equal("Hellow World", "World",SENSITIVE), FALSE);
  43.   TEST ("s1 != s2", (s1 != s2), TRUE);
  44.   CoolGen_String s3 = s2;
  45.   TEST ("s3 = s2", (s3 == s2), TRUE);
  46.   s1.reverse ();
  47.   TEST ("s1.reverse()", is_equal (s1, "!DLROW OLLEH", INSENSITIVE), TRUE);
  48.   TEST ("upcase (s2)", strcmp (upcase(s2),"WORLD!"), 0);
  49.   TEST ("downcase (s2)", strcmp (downcase(s2), "world!"), 0);
  50.   TEST ("is_lt (s2, \"WORLD!\")", is_lt (s2, "WORLD!", SENSITIVE),
  51.     FALSE);
  52.   TEST ("is_le (s2, \"WORLD!\")", 
  53.     is_le (s2, "WORLD!", INSENSITIVE), TRUE);
  54.   s1.reverse ();
  55.   TEST ("downcase (s1)", strcmp (downcase(s1), "hello world!"), 0);
  56.   TEST ("capitalize (s1)", strcmp (capitalize (s1), "Hello World!"), 0);
  57.   left_trim (s1, "Hello ");
  58.   TEST ("left_trim (s1, \"Hello \")", is_equal (s1, s2, INSENSITIVE), TRUE);
  59.   right_trim (s1, "!");
  60.   TEST ("right_trim (s1, \"!\")", is_equal (s1, "WORLD", INSENSITIVE), TRUE);
  61.   downcase (s1);
  62.   TEST ("is_equal (s1, \"world\", SENSITIVE)",
  63.     is_equal (s1, "world", SENSITIVE), TRUE);
  64.   trim (s1, "or");
  65.   TEST ("trim (s1, \"or\")", strcmp (s1, "wld"), 0);
  66.   s1.clear();
  67.   TEST ("s1.clear()", strlen(s1), 0);
  68.   s1 += "12345";
  69.   TEST ("s1 += \"12345\"", strcmp (s1, "12345"), 0);
  70.   TEST ("strtol (s1)", (strtol(s1) == (long)12345), 1);
  71.   TEST ("atol (s1)", (atol(s1) == (long)12345), 1);
  72.   TEST ("itol (s1)", (atoi(s1) == (int)12345), 1);
  73.   s1 += '.';
  74.   TEST ("s1 += '.'", strcmp (s1, "12345."), 0);
  75.   s1 = s1 + "7";
  76.   TEST ("s1 = s1 + \"7\"", strcmp (s1,"12345.7"), 0); 
  77.   TEST ("atof (s1)", (atof(s1) == (double)12345.7), 1);
  78.   TEST ("strtod (s1)", (strtod(s1) == (double)12345.7), 1);
  79. }
  80.  
  81. void test1() {
  82.   CoolGen_String s1 = "my string";
  83.   CoolGen_String s33(s1);
  84.   Boolean ans = s1.insert("big ",3);
  85.   TEST ("s1.insert(\"big\",3)",strcmp(s1,"my big string"), 0);
  86.   TEST ("return value",ans==TRUE,1);
  87.   TEST ("s33==\"my string\"",strcmp(s33,"my string"),0);
  88.   ans = s1.insert("big ",-1);
  89.   TEST ("return value",ans==FALSE,1);
  90.   ans = s1.insert("big ", 14);
  91.   TEST ("return value",ans==FALSE,1);
  92.   ans = s1.insert("big ",13);
  93.   TEST ("s1.insert(\"big\",13)",strcmp(s1,"my big stringbig "), 0);
  94.   TEST ("return value",ans==TRUE,1);
  95.  
  96.   s1 = "my string";
  97.   CoolGen_String s32(s1);
  98.   ans = s1.remove(3,5);
  99.   TEST ("s1.remove(3,5)",strcmp(s1,"my ring"), 0);
  100.   TEST ("return value",ans==TRUE,1);
  101.   TEST ("s32==\"my string\"",strcmp(s32,"my string"),0);
  102.   ans = s1.remove(5,7);
  103.   TEST ("s1.remove(5,7)",strcmp(s1,"my ri"), 0);
  104.   TEST ("return value",ans==TRUE,1);
  105.   ans = s1.remove(0,1);
  106.   TEST ("s1.remove(0,1)",strcmp(s1,"y ri"), 0);
  107.   TEST ("return value",ans==TRUE,1);
  108.  
  109.  
  110.   s1 = "my string";
  111.   CoolGen_String s31(s1);
  112.   ans = s1.replace("bo",3,5);
  113.   TEST ("s1.replace(3,5)",strcmp(s1,"my boring"), 0);
  114.   TEST ("return value",ans==TRUE,1);
  115.   TEST ("s31==\"my string\"",strcmp(s31,"my string"),0);
  116.   ans = s1.replace(" very ",2,3);
  117.   TEST ("s1.replace(2,3)",strcmp(s1,"my very boring"), 0);
  118.   TEST ("return value",ans==TRUE,1);
  119.   ans = s1.replace("my,",3,7);
  120.   TEST ("s1.replace(3,7)",strcmp(s1,"my my, boring"), 0);
  121.   TEST ("return value",ans==TRUE,1);
  122.   ans = s1.replace("ed",10,13);
  123.   TEST ("s1.replace(10,13)",strcmp(s1,"my my, bored"), 0);
  124.   TEST ("return value",ans==TRUE,1);
  125.   ans = s1.replace("b",0,1);
  126.   TEST ("s1.replace(0,1)",strcmp(s1,"by my, bored"), 0);
  127.   TEST ("return value",ans==TRUE,1);
  128. }
  129.  
  130. void test2() {
  131.   CoolGen_String s1 = "my string";
  132.   CoolGen_String answ;
  133.   CoolGen_String s30(s1);
  134.   s1.yank(answ,3,5);
  135.   TEST ("s1.yank(3,5)",strcmp(s1,"my ring"), 0);
  136.   TEST ("return value",strcmp(answ,"st"),0);
  137.   TEST ("s30==\"my string\"",strcmp(s30,"my string"),0);
  138.   s1.yank(answ,5,7);
  139.   TEST ("s1.yank(5,7)",strcmp(s1,"my ri"), 0);
  140.   TEST ("return value",strcmp(answ,"ng"),0);
  141.   s1.yank(answ,0,1);
  142.   TEST ("s1.yank(0,1)",strcmp(s1,"y ri"), 0);
  143.   TEST ("return value",strcmp(answ,"m"),0);
  144.  
  145.   s1 = "my string";
  146.   CoolGen_String s20(s1);
  147.   s1.sub_string(answ,3,5);
  148.   TEST ("s1.sub_string(3,5)",strcmp(s1,"my string"), 0);
  149.   TEST ("return value",strcmp(answ,"st"),0);
  150.   TEST ("s20==\"my string\"",strcmp(s20,"my string"),0);
  151.   s1.sub_string(answ,5,7);
  152.   TEST ("s1.sub_string(5,7)",strcmp(s1,"my string"), 0);
  153.   TEST ("return value",strcmp(answ,"ri"),0);
  154.   s1.sub_string(answ,0,1);
  155.   TEST ("s1.sub_string(0,1)",strcmp(s1,"my string"), 0);
  156.   TEST ("return value",strcmp(answ,"m"),0);
  157.  
  158.   s1 = "garbage to be deleted";
  159.   CoolGen_String s19(s1);
  160.   answ = strncpy(s1,"hello there",5);
  161.   TEST ((const char*) s1,0,0);
  162.   TEST ("strncpy(3,5)",strcmp(s1,"hello"), 0);
  163.   TEST ("return value",strcmp(answ,"hello"),0);
  164.   TEST ("s19==\"garbage to be deleted\"",strcmp(s19,"garbage to be deleted"),0);
  165.   TEST ((const char*) s1,0,0);
  166.   answ = strncpy(s1,"hi",5);
  167.   TEST ("strncpy(s1,\"hi\",5)",strcmp(s1,"hi"), 0);
  168.   TEST ("return value",strcmp(answ,"hi"),0);
  169. }
  170.  
  171. void test3() {
  172.   CoolGen_String r1("garbage49r*%Hi Therean d more Gsarbage");
  173.   TEST ("r1.is_valid()", r1.is_valid(), FALSE);
  174.   r1.compile ("Hi There");
  175.   TEST ("r1.compile(\"Hi There\")", r1.is_valid(), TRUE);
  176.   TEST ("r1.find()", r1.find(), TRUE);
  177.   TEST ("r1.start()",r1.start(), 12);
  178.   TEST ("r1.end",r1.end(), 20);
  179.   r1.compile ("^ABC");
  180.   TEST ("r1.compile(\"^ABC\")", r1.is_valid(), TRUE);
  181.   TEST ("r1.find()", r1.find(), FALSE);
  182.   TEST ("r1=\"ABCDEFG\"", (r1="ABCDEFG",strlen (r1)), 7);
  183.   r1.compile ("^ABC");
  184.   TEST ("r1.compile(\"^ABC\")", r1.is_valid(), TRUE);
  185.   TEST ("r1.find()", r1.find (), TRUE);
  186.   TEST ("r1.start()", r1.start(), 0);
  187.   TEST ("r1.end()", r1.end(), 3);
  188.   r1.compile ("EFG$");
  189.   TEST ("r1.compile(\"EFG$\")", r1.is_valid(), TRUE);
  190.   TEST ("r1.find()", r1.find (), TRUE);
  191.   TEST ("r1.start()", r1.start(), 4);
  192.   TEST ("r1.end()", r1.end(), 7);
  193.   TEST ("r1=\"ab123QQ59ba\"", (r1="ab123QQ59ba",strlen (r1)), 11);
  194.   r1.compile("[^ab1-9]");
  195.   TEST ("r1.compile(\"[^ab1-9]\")", r1.is_valid(), TRUE);
  196.   TEST ("r1.find(ab123QQ59ba)", r1.find(), TRUE);
  197.   TEST ("r1.start()",r1.start(),5);
  198.   TEST ("r1.end()", r1.end(),6);
  199.   TEST ("r1=\"A B C D E\"", (r1="A B C D E",strlen (r1)), 9);
  200.   r1.compile("B . D");
  201.   TEST ("r1.compile(\"B . D\")", r1.is_valid(), TRUE);
  202.   TEST ("r1.find()", r1.find(), TRUE);
  203.   TEST ("r1.start()",r1.start(),2);
  204.   TEST ("r1.end()", r1.end(),7);
  205.   TEST ("r1=\"<<<AE>>>\"", (r1="<<<AE>>>",strlen (r1)), 8);
  206.   TEST ("r1.find()", r1.find(), FALSE);
  207. }
  208.  
  209. void test_leak() {
  210.   for (;;) {
  211.   test0();
  212.   test1();
  213.   test2();  
  214.   test3();
  215.   }
  216. }
  217.  
  218. int main (void) {
  219.   START("CoolGen_String");
  220.   test0();
  221.   test1();
  222.   test2();  
  223.   test3();
  224. #if LEAK
  225.   test_leak();
  226. #endif
  227.   SUMMARY();
  228.   return 0;
  229. }
  230.